wayland: check valid pending cairo surface
authorOlivier Fourdan <ofourdan@redhat.com>
Wed, 2 Nov 2016 10:51:54 +0000 (11:51 +0100)
committerOlivier Fourdan <ofourdan@redhat.com>
Thu, 3 Nov 2016 07:50:34 +0000 (08:50 +0100)
commit2324b96a325532ba05d5eeb388e9d8f4aeef2a7f
tree9bf145cb4943b55dfb221c771f6479deb0bdd749
parentc9a313a125923ff832400728108901dd714aaade
wayland: check valid pending cairo surface

gdk_wayland_window_attach_image() is normally called from
gdk_window_end_paint() to notify the compositor of newly staged drawing.

If any of the drawing code inadvertently dispatches the wayland event
loop (for instance with a gdk_flush() call), then it's possible that by
the time gdk_window_end_paint() is called, the staged drawing is already
destroyed.

This commit bypasses the attach_image call in scenarios where the staged
drawing is prematurely dropped.

https://bugzilla.gnome.org/show_bug.cgi?id=773274
gdk/wayland/gdkwindow-wayland.c